package com.sg.dto.biz.framework.common;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Objects;

/**
 * @desc DeptSourceDataDto
 * @使用场景
 */
@Data
public class DeptSourceDataDto extends BaseDto implements Serializable {

    /**
     * 部门编号
     */
    @ApiModelProperty("部门编号")
    private String deptNumber;

    /**
     * 部门名称（中文）
     */
    @ApiModelProperty("部门名称（中文）")
    private String deptName;

    /**
     * 部门名称（英文）
     */
    @ApiModelProperty("部门名称（英文）")
    private String deptEnName;

    /**
     * 部门简称
     */
    @ApiModelProperty("部门简称")
    private String deptShortName;

    /**
     * 上级部门编号
     */
    @ApiModelProperty("上级部门编号")
    private String parentDeptNumber;

    /**
     * 上级部门名称（中文）
     */
    @ApiModelProperty("上级部门名称（中文）")
    private String parentDeptName;

    /**
     * 部门类型名称
     */
    @ApiModelProperty("部门类型名称")
    private String typeDictionaryName;

    /**
     * 分管领导工号
     */
    @ApiModelProperty("分管领导工号")
    private String deptLeaderCode;

    /**
     * 分管领导姓名
     */
    @ApiModelProperty("分管领导姓名")
    private String deptLeaderName;

    /**
     * 行政主管工号
     */
    @ApiModelProperty("行政主管工号")
    private String directorCode;

    /**
     * 行政主管名称
     */
    @ApiModelProperty("行政主管名称")
    private String directorName;

    /**
     * 党团主管工号
     */
    @ApiModelProperty("党团主管工号")
    private String partyAndYouthDirectorCode;

    /**
     * 党团主管名称
     */
    @ApiModelProperty("党团主管名称")
    private String partyAndYouthDirectorName;

    /**
     * 排序
     */
    @ApiModelProperty("排序")
    private Long orderNumber;

    /**
     * 数据是否完整 TRUE:是 FALSE:否
     */
    @ApiModelProperty("数据是否完整")
    private String dataIsComplete;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        DeptSourceDataDto that = (DeptSourceDataDto) o;
        return deptNumber == that.deptNumber && deptName == that.deptName && deptEnName == that.deptEnName && deptShortName == that.deptShortName && parentDeptNumber == that.parentDeptNumber && parentDeptName == that.parentDeptName && typeDictionaryName == that.typeDictionaryName && deptLeaderCode == that.deptLeaderCode && deptLeaderName == that.deptLeaderName && directorCode == that.directorCode && directorName == that.directorName && partyAndYouthDirectorCode == that.partyAndYouthDirectorCode && partyAndYouthDirectorName == that.partyAndYouthDirectorName && orderNumber == that.orderNumber && dataIsComplete == that.dataIsComplete;
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), deptNumber, deptName, deptEnName, deptShortName, parentDeptNumber, parentDeptName, typeDictionaryName, deptLeaderCode, deptLeaderName, directorCode, directorName, partyAndYouthDirectorCode, partyAndYouthDirectorName, orderNumber, dataIsComplete);
    }

}
